﻿using KZ.Utilities;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using KZ.Express.H.ENT;
using KZ.Express.H.BLL;

namespace KZ.Express.H.Presenter
{
    public class LoginPresenter : BasePresenter
    {
        LoginBLL _loginBLL;
        public LoginPresenter(IBaseView view)
            : base(view)
        {
            _view = view;
            _loginBLL = new LoginBLL();
        }



        public UserENT Login(string username, string password)
        {
            try
            {
                string msg = String.Empty;
                if (String.IsNullOrWhiteSpace(username))
                    msg = "Vui lòng nhập Tên đăng nhập\n";
                if (String.IsNullOrWhiteSpace(password))
                    msg += "Vui lòng nhập Mật khẩu";

                if (!String.IsNullOrWhiteSpace(msg))
                    throw new BusinessLogicException(msg);

                SearchCriteria search = new SearchCriteria();
                search.Add("Username", username);
                search.Add("Password", password);

                UserENT user = _loginBLL.GetEntity<UserENT>(search) as UserENT;
                if (user == null || user.UserID == 0)
                    throw new BusinessLogicException("Tên đăng nhập hay tài khoản không đúng");
                if(!user.RoleID.HasValue)
                    throw new BusinessLogicException("Bạn không có quyền truy cập");

                return user;
            }
            catch (DataAccessException ex)
            {
                throw new BusinessLogicException(ex.Message);
            }
        }
    }
}
